// 写路由, 用户相关路由
const express = require("express")
const router = express.Router()

// 判断用户名与密码是否合法的中间价
const { repasswordReg, namePassReg, userOnly, userPassRight, tokenAble } = require("../middleware/user")

// 用户操作控制器
const { userReg, userLogin, userInfo } = require("../controllers/user")

// 先写一个用户注册
/* 
  用户注册需要:
    1. 校验用户信息,需要通过三个中间件
      + 用户密码是否合法
      + 密码重复密码是否一致
      + 用户名是否唯一
    2. 将用户需要的信息存储在数据库之中
    3. 给用户返回token
      2 3都在用户控制器中实现
*/
router.post("/register", namePassReg, repasswordReg, userOnly, userReg)

// 用户登录
/* 
  用户登录需要:
    1. 校验用户信息,需要通过三个中间件
      + 用户密码是否合法
      + 用户名密码是否正确
    2. 返回token
*/
router.post("/login", namePassReg, userPassRight, userLogin)

// 获取用户信息(验证登录)
/* 
  获取用户信息需要
    1. 校验用户token
    2. 返回用户信息
*/
router.post("/info", tokenAble, userInfo)

module.exports = router